home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagd_f.zip
/
DIRS.SWG
/
0024_File Finder.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-01-27
|
2KB
|
67 lines
program XFind(input,output);
uses Dos,
FileSpec;
var
FS: TWildCard;
procedure WriteSpec(Name: string);
begin
Name := FExpand(Name);
WriteLn(Name);
end;
procedure FindFiles(Dir: String);
var
Search: SearchRec;
CurDir: String;
DirList: array [1..128] of string[12];
i,
DirNum: Byte;
begin
CurDir := FExpand('.');
if (Dir<>'.') and (Dir<>'..') then begin
ChDir(FExpand(Dir));
DirNum := 0;
FindFirst('*.*',AnyFile,Search);
if DosError<>18 then begin
if Search.Attr=Directory
then begin
inc(DirNum);
DirList[ DirNum ] := Search.Name;
end
else if FS.FitSpec(Search.Name)
then WriteSpec(Search.Name);
repeat
FindNext(Search);
if DosError<>18
then if Search.Attr=Directory
then begin
inc(DirNum);
DirList[ DirNum ] := Search.Name;
end
else if FS.FitSpec(Search.Name)
then WriteSpec(Search.Name);
until DosError = 18;
end;
if DirNum<>0
then for i := 1 to DirNum do FindFiles(DirList[i]);
ChDir(CurDir);
end;
end;
var
i: Byte;
begin
if ParamCount = 0
then WriteLn('Usage: XFIND file1 [file2 file3 ... ]')
else begin
FS.Init;
for i := 1 to ParamCount do FS.AddSpec(ParamStr(i));
FindFiles('\');
FS.Done;
end;
end.